package org.esco.demo.ssc.web.rest; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; /** * * @author GIP RECIA - Julien Gribonvald * */ @RestController @Slf4j @RequestMapping("/api") public class SampleRestResource { @RequestMapping(value = "/account", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<UserDetails> getAccount() { SecurityContext securityContext = SecurityContextHolder.getContext(); Authentication authentication = securityContext.getAuthentication(); UserDetails springSecurityUser = null; if (authentication != null) { if (authentication.getPrincipal() instanceof UserDetails) { springSecurityUser = (UserDetails) authentication.getPrincipal(); } } if (springSecurityUser == null) { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } log.debug("UserDetails {}", springSecurityUser); // log.debug("REST request to get UserDetail account {}", springSecurityUser); return new ResponseEntity<>(springSecurityUser, HttpStatus.OK); } }